import { createApp } from 'vue'
import { createPinia } from 'pinia'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import zhCn from 'element-plus/es/locale/lang/zh-cn'

import App from './App.vue'
import router from './router'

const app = createApp(App)

app.use(createPinia())
app.use(router)
app.use(ElementPlus, {
  locale: zhCn,
})
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(key, component)
}
app.directive('hasPermission', (el, binding) => {
  let userString = window.localStorage.getItem('buttonPermission')
  if (userString) {
    let userObject = JSON.parse(userString)
    let permissionList = userObject.tpermissionList || []
    let hasPermission = false
    for (const key in permissionList) {
      const permission = permissionList[key].code
      if (permission == binding.value) {
        hasPermission = true
        break
      }
    }
    console.log(binding.value, hasPermission, el)
    if (!hasPermission) {
      el.style.display = 'none'
    }
  }
})
app.mount('#app')
